#include "OrderedStdUnit.h"
#include "LengthUnit.h"

OrderedStdUnit::OrderedStdUnit()
{
	orderedStdUnitSet_m.insert(&MILE);
	orderedStdUnitSet_m.insert(&YARD);
	orderedStdUnitSet_m.insert(&FEET);
	orderedStdUnitSet_m.insert(&INCH);
}


void OrderedStdUnit::accept( UnitsVisitor* visitor, const Unit* from, const Unit* to) const
{
	for( OrderedStdUnitSet::const_iterator it = orderedStdUnitSet_m.find(from); it != orderedStdUnitSet_m.end(); ++it)
	{
		visitor->visit(*it);
	}
}

const OrderedStdUnit& OrderedStdUnit::getOrderedStdUnit()
{
	const static OrderedStdUnit orderedStdUnits;
	return orderedStdUnits;
}


